07. Solution: Variables and Assignment Operators
Solution: Assign and Modify Variables
This is our solution to the previous quiz:
# The current volume of a water reservoir (in cubic metres)
reservoir_volume = 4.445e8
# The amount of rainfall from a storm (in cubic metres)
rainfall = 5e6
# decrease the rainfall variable by 10% to account for runoff
rainfall *= .9
# add the rainfall variable to the reservoir_volume variable
reservoir_volume += rainfall
# increase reservoir_volume by 5% to account for stormwater that flows
# into the reservoir in the days following the storm
reservoir_volume *= 1.05
# decrease reservoir_volume by 5% to account for evaporation
reservoir_volume *= 0.95
# subtract 2.5e5 cubic metres from reservoir_volume to account for water
# that's piped to arid regions.
reservoir_volume -= 2.5e5
# print the new value of the reservoir_volume variable
print(reservoir_volume)
Solution: Changing Variables
For the first multiple choice quiz, the correct answer is that the value of crs_per_rab
has not changed. That is, it is still 3.0.
This is because when a variable is assigned, it is assigned to the value of the expression on the right-hand-side, not to the expression itself. In the line:
```python
crs_per_rab = carrots/rabbits
Python actually did the calculation to evaluate the expression on the right-hand-side, `carrots/rabbits`, and then assigned the variable `crs_per_rab` to be the value of that expression. It promptly forgot the formula, only saving the result in the variable.
In order to update the value of `crs_per_rab` to take into account the change in `rabbits`, we need to run this line again:
crs_per_rab = carrots/rabbits
print(crs_per_rab)
2.0
```
That’s the new number of carrots per rabbit after the increase in the number of rabbits. All of our variables have been updated to take this into account.